//
//  UIView+viewExtension.h
//  FCTools
//
//  Created by WJC on 2018/10/26.
//  Copyright © 2018 wjc. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIView (viewExtension)
@property (nonatomic, assign) CGFloat x;
@property (nonatomic, assign) CGFloat y;
@property (nonatomic, assign) CGFloat width;
@property (nonatomic, assign) CGFloat height;
@property (nonatomic, assign) CGFloat centerX;
@property (nonatomic, assign) CGFloat centerY;
@property (nonatomic, assign) CGFloat maxX;
@property (nonatomic, assign) CGFloat maxY;
@property (nonatomic, assign) CGPoint origin;
@property (nonatomic, assign) CGSize size;

@property (nonatomic) CGFloat bottom;
@property (nonatomic) CGFloat left;
@property (nonatomic) CGFloat right;
@property (nonatomic,strong) NSString * _Nullable txtTag;



@property (nonatomic, assign) IBInspectable CGFloat radius;
@property (nonatomic, assign) IBInspectable CGFloat borderWidth;
@property (nonatomic, assign) IBInspectable NSInteger masksToBounds;
@property (nonatomic,strong) IBInspectable UIColor * _Nullable borderColor;
/** 从xib中创建一个控件 */
+ (instancetype _Nullable )viewFromXibWithBundle:(NSBundle *_Nullable)bundle;
/** 从xib中创建一个控件 */
//+(instancetype)getXibWithBundle:(NSBundle *)bundle AndController:(UIViewController *)controller;
/** 从xib中创建一个控件 */
+ (instancetype _Nullable )viewFromXib;
/** 获取该视图的控制器 */
- (UIViewController*_Nullable)viewController;

/** 删除当前视图内的所有子视图 */
- (void)removeChildViews;

    //删除tableview底部多余横线
- (void)setExtraCellLineHidden: (UITableView *_Nullable)tableView;

/** 设置控件圆角 */
- (void)byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii;

/**当前view相对于view中所在的frame*/
- (CGRect)getFrameWithSuperView:(UIView*_Nullable)superView;
+ (UIView*_Nullable)getTopCercleWithPorint:(CGPoint)point;

/**
 处理searchbar圆角
 
 */
- (UIView*_Nullable)subViewOfClassName:(NSString*_Nullable)className ;

/**
 虚线框
 
 @param lineView 虚线框的View
 @param lineLength 虚线长度
 @param lineSpacing 虚线间隔宽度
 @param lineColor 虚线颜色
 */
- (void)drawDashLine:(UIView *_Nullable)lineView lineLength:(int)lineLength lineSpacing:(int)lineSpacing lineColor:(UIColor *_Nullable)lineColor;

-(void)draw6Corner;
#pragma mark - 渐变背景色设置
/* CGColorRef 数组定义了每个渐变色的颜色。 默认为nil。 可动画的。*/
@property(nullable, copy) NSArray *az_colors;

/* 可选的NSNumber对象数组，这些数组将每个渐变的位置定义为[0,1]范围内的值。
 * 该值必须单调增加。
 * 如果给出nil数组，则假定这些停止点在[0,1]范围内均匀分布。
 * 渲染后，颜色将在插值之前映射到输出颜色空间。
 * 默认为nil。 可动画的。
 */
@property(nullable, copy) NSArray<NSNumber *> *az_locations;

/* 绘制到图层的坐标空间中时，渐变的起点和终点。
 * 起点对应于第一个梯度停止，终点对应于最后一个梯度停止。
 * 这两个点都在单位坐标空间中定义，然后在绘制时映射到图层的边界矩形。（即[0,0]是图层的左下角，[1,1]是图层的右上角。）默认值分别是[.5,0]和[.5,1]。
 * 两者都是可动画的。
 */
@property CGPoint az_startPoint;
@property CGPoint az_endPoint;

/// 设置UIView背景渐变色
/// @param colors 渐变色数组
/// @param locations locations
/// @param startPoint 起始坐标 [0,0]
/// @param endPoint 结束坐标 [0,1]
+ (UIView *_Nullable)az_gradientViewWithColors:(NSArray<UIColor *> *_Nullable)colors    :(NSArray<NSNumber *> *_Nullable)locations startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint;
/// 设置UIView背景渐变色
/// @param colors 渐变色数组
/// @param locations locations
/// @param startPoint 起始坐标 [0,0]
/// @param endPoint 结束坐标 [0,1]
- (void)az_setGradientBackgroundWithColors:(NSArray<UIColor *> *_Nullable)colors locations:(NSArray<NSNumber *> *_Nullable)locations startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint;
-(void)setEditWithView:(bool)edit;
- (void)drawTopCornerRadius:(NSInteger)radius;
// 顶部所有圆角
- (void)drawBottomCornerRadius:(NSInteger)radius;
@end
